package br.com.cs.pojo.impl;

import br.com.cs.dao.jdbc.MembroJDBC;
import br.com.cs.exception.DAOException;
import br.com.cs.exception.PojoException;
import br.com.cs.model.Membro;
import br.com.cs.pojo.MembroPojo;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;


public class MembroPojoImpl extends BasePojoFactoryImpl implements MembroPojo{
    
    private static MembroPojoImpl instance = new MembroPojoImpl();
    
    /**
     * Construtor
     */
    public MembroPojoImpl() {
    }
    
    /**
     * Recupera a instancia do pojo
     * @return 
     */
    public static MembroPojoImpl getInstance(){
        return instance;
    }

    @Override
    public void delete(Membro membro) throws PojoException {
        try {
            MembroJDBC.getInstance().delete(membro);
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: Remover Membro", "notuse"+membro.getNome()+".", ex);
        }
    }

    @Override
    public List getAll() throws PojoException {
        try {
            return MembroJDBC.getInstance().getAll();
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: ", "Recuperar lista de visitantes.", ex);
        }
    }

    @Override
    public Membro getByPrimaryKey(Integer id) throws PojoException {
        try {
            return MembroJDBC.getInstance().getByPrimaryKey(id);
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: ","Recuperar categoria por Id.", ex);
        }
    }

    @Override
    public void save(Membro membro) throws PojoException {
        //try {
            
     //   }
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public List getByFilter(String filterName, String filterValue) throws PojoException {
        try {
            return MembroJDBC.getInstance().getByFilter(filterName, filterValue);
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: ", "Recuperar categoria por filtro.", ex);
        }
    }
    
}
